home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1997 / HAM Radio 1997.iso / vcls / wfc007.000 / include / cras.hpp < prev    next >
C/C++ Source or Header  |  1996-04-08  |  6KB  |  217 lines

  1. #ifndef REMOTE_ACCESS_SERVICE_CLASS_HEADER
  2.  
  3. /*
  4. ** Author: Samuel R. Blackburn
  5. ** CI$: 76300,326
  6. ** Internet: sammy@sed.csc.com
  7. **
  8. ** You can use it any way you like.
  9. */
  10.  
  11. #define REMOTE_ACCESS_SERVICE_CLASS_HEADER
  12.  
  13. #pragma warning ( disable : 4097 )
  14.  
  15. /*
  16. ** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
  17. */
  18.  
  19. typedef RASAMB _rasamb;
  20.  
  21. class CRASAuthenticationMessageBlock : public _rasamb
  22. {
  23.    private:
  24.  
  25.       void m_Initialize( void );
  26.  
  27.    public:
  28.  
  29.       CRASAuthenticationMessageBlock();
  30.       CRASAuthenticationMessageBlock( const RASAMB *source );
  31.       CRASAuthenticationMessageBlock( const CRASAuthenticationMessageBlock& source );
  32.  
  33.       /*
  34.       ** Destructor should be virtual according to MSJ article in Sept 1992
  35.       ** "Do More with Less Code:..."
  36.       */
  37.  
  38.       virtual ~CRASAuthenticationMessageBlock();
  39.  
  40.       void  Copy( const RASAMB *source );
  41.       void  Copy( const CRASAuthenticationMessageBlock& source );
  42.       BYTE  GetLana( void ) const;
  43.       DWORD GetErrorCode( void ) const;
  44.       void  GetErrorString( CString& return_string ) const;
  45. };
  46.  
  47. /*
  48. ** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
  49. */
  50.  
  51. typedef RASPPPNBF _raspppnbf;
  52.  
  53. class CRASNetBEUIFramer : public _raspppnbf
  54. {
  55.    private:
  56.  
  57.       void m_Initialize( void );
  58.  
  59.    public:
  60.  
  61.       CRASNetBEUIFramer();
  62.       CRASNetBEUIFramer( const RASPPPNBF *source );
  63.       CRASNetBEUIFramer( const CRASNetBEUIFramer& source );
  64.  
  65.       /*
  66.       ** Destructor should be virtual according to MSJ article in Sept 1992
  67.       ** "Do More with Less Code:..."
  68.       */
  69.  
  70.       virtual ~CRASNetBEUIFramer();
  71.  
  72.       void  Copy( const RASPPPNBF* source );
  73.       void  Copy( const CRASNetBEUIFramer& source );
  74.       BYTE  GetLana( void ) const;
  75.       DWORD GetErrorCode( void ) const;
  76.       DWORD GetNetBiosErrorCode( void ) const;
  77.       void  GetErrorString( CString& return_string ) const;
  78.       void  GetWorkstationName( CString& return_string ) const;
  79. };
  80.  
  81. /*
  82. ** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
  83. */
  84.  
  85. typedef RASPPPIPX _raspppipx;
  86.  
  87. class CRASInternetworkPacketExchange : public _raspppipx
  88. {
  89.    private:
  90.  
  91.       void m_Initialize( void );
  92.  
  93.    public:
  94.  
  95.       CRASInternetworkPacketExchange();
  96.       CRASInternetworkPacketExchange( const RASPPPIPX * source );
  97.       CRASInternetworkPacketExchange( const CRASInternetworkPacketExchange& source );
  98.  
  99.       /*
  100.       ** Destructor should be virtual according to MSJ article in Sept 1992
  101.       ** "Do More with Less Code:..."
  102.       */
  103.  
  104.       virtual ~CRASInternetworkPacketExchange();
  105.  
  106.       void   Copy( const RASPPPIPX * source );
  107.       void   Copy( const CRASInternetworkPacketExchange& source );
  108.       DWORD  GetErrorCode( void ) const;
  109.       void   GetIPXAddress( CString& return_string ) const;
  110. };
  111.  
  112. /*
  113. ** We have to declare a typedef because of the funcky way Microsoft declared RASAMB in RAS.H
  114. */
  115.  
  116. typedef RASPPPIP _raspppip;
  117.  
  118. class CRASInternetProtocol : public _raspppip
  119. {
  120.    private:
  121.  
  122.       void m_Initialize( void );
  123.  
  124.    public:
  125.  
  126.       CRASInternetProtocol();
  127.       CRASInternetProtocol( const RASPPPIP * source );
  128.       CRASInternetProtocol( const CRASInternetProtocol& source );
  129.  
  130.       /*
  131.       ** Destructor should be virtual according to MSJ article in Sept 1992
  132.       ** "Do More with Less Code:..."
  133.       */
  134.  
  135.       virtual ~CRASInternetProtocol();
  136.  
  137.       void   Copy( const RASPPPIP * source );
  138.       void   Copy( const CRASInternetProtocol& source );
  139.       DWORD  GetErrorCode( void ) const;
  140.       void   GetIPAddress( CString& return_string ) const;
  141. };
  142.  
  143. #pragma warning ( default : 4097 )
  144.  
  145. class CRAS : public CObject
  146. {
  147.    private:
  148.  
  149.       void m_Initialize( void );
  150.       void m_GetConnectionsIntoMemory( LPRASCONN& return_value, DWORD& number_of_entries );
  151.  
  152.    protected:
  153.  
  154.       LONG m_ErrorCode;
  155.  
  156.       HRASCONN m_RasConnectionHandle;
  157.  
  158.       RASCONNSTATUS m_RasConnectionStatus;
  159.  
  160.    public:
  161.  
  162.       enum Protocols
  163.       {
  164.          protocolAuthenticationMessageBlock = RASP_Amb,
  165.          protocolNetBEUIFramer              = RASP_PppNbf,
  166.          protocolInternetworkPacketExchange = RASP_PppIpx,
  167.          protocolInternetProtocol           = RASP_PppIp
  168.       };
  169.  
  170.       CRAS();
  171.       CRAS( DWORD input_buffer_size );
  172.       CRAS( DWORD input_buffer_size, DWORD output_buffer_size );
  173.  
  174.       /*
  175.       ** Destructor should be virtual according to MSJ article in Sept 1992
  176.       ** "Do More with Less Code:..."
  177.       */
  178.  
  179.       virtual ~CRAS();
  180.  
  181.       /*
  182.       ** The Win32 API
  183.       */
  184.  
  185.       virtual BOOL Dial( LPCTSTR who_to_call ); // RasDial
  186.       virtual HRASCONN GetConnection( LPCTSTR name_of_connection );
  187.       virtual BOOL GetConnections( CStringArray& connections ); // RasEnumConnections
  188.       virtual BOOL GetConnectionStatus( void ); // RasGetConnectStatus
  189.       virtual BOOL GetErrorCode( void ) const;
  190.       virtual BOOL GetErrorString( CString& error_string ); // RasGetErrorString
  191.       virtual BOOL GetPhoneBookEntries( CStringArray& phone_book_entries );
  192.       virtual BOOL GetProtocolInformation( CRASAuthenticationMessageBlock& data_to_get );
  193.       virtual BOOL GetProtocolInformation( CRASNetBEUIFramer& data_to_get );
  194.       virtual BOOL GetProtocolInformation( CRASInternetworkPacketExchange& data_to_get );
  195.       virtual BOOL GetProtocolInformation( CRASInternetProtocol& data_to_get );
  196.       virtual BOOL HangUp( LPCTSTR name_of_connection = NULL );
  197.       virtual BOOL IsConnected( void );
  198.  
  199.       /*
  200.       ** API's to make life a little easier 
  201.       */
  202.  
  203.       virtual BOOL Open( LPCTSTR who_to_call ); // Dial()
  204.       virtual BOOL Close( LPCTSTR name_of_connection = NULL ); // HangUp();
  205.  
  206.       /*
  207.       ** Operators
  208.       */
  209.  
  210.       /*
  211.       ** [] when reading comes from the input buffer
  212.       ** [] when writine (putting into array) goed into outputbuffer
  213.       */
  214. };
  215.  
  216. #endif // REMOTE_ACCESS_SERVICE_CLASS_HEADER
  217.